<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
    <title>ShellCheck: SC2129 – Consider using `{ cmd1; cmd2; } >> file` instead of individual redirects.</title>
    <link rel="stylesheet" href="css/bootstrap.min.css" />
  </head>
  <body style="margin-left: auto; margin-right: auto; max-width: 800px">
    <h1>SC2129 – ShellCheck Wiki</h1>
    <a href="https://github.com/koalaman/shellcheck/wiki/SC2129">See this page on GitHub</a>
    <p style="display: none"><a href="index.html">Sitemap</a></p>
    <hr />
    <h2
id="consider-using--cmd1-cmd2---file-instead-of-individual-redirects">Consider
using <code>{ cmd1; cmd2; } &gt;&gt; file</code> instead of individual
redirects.</h2>
<h3 id="problematic-code">Problematic code:</h3>
<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="SC2129.html#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="bu">echo</span> foo <span class="op">&gt;&gt;</span> file</span>
<span id="cb1-2"><a href="SC2129.html#cb1-2" aria-hidden="true" tabindex="-1"></a><span class="fu">date</span> <span class="op">&gt;&gt;</span> file</span>
<span id="cb1-3"><a href="SC2129.html#cb1-3" aria-hidden="true" tabindex="-1"></a><span class="fu">cat</span> stuff  <span class="op">&gt;&gt;</span> file</span></code></pre></div>
<h3 id="correct-code">Correct code:</h3>
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="SC2129.html#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="kw">{</span></span>
<span id="cb2-2"><a href="SC2129.html#cb2-2" aria-hidden="true" tabindex="-1"></a>  <span class="bu">echo</span> foo</span>
<span id="cb2-3"><a href="SC2129.html#cb2-3" aria-hidden="true" tabindex="-1"></a>  <span class="fu">date</span></span>
<span id="cb2-4"><a href="SC2129.html#cb2-4" aria-hidden="true" tabindex="-1"></a>  <span class="fu">cat</span> stuff</span>
<span id="cb2-5"><a href="SC2129.html#cb2-5" aria-hidden="true" tabindex="-1"></a><span class="kw">}</span> <span class="op">&gt;&gt;</span> file</span></code></pre></div>
<h3 id="rationale">Rationale:</h3>
<p>Rather than adding <code>&gt;&gt; something</code> after every single
line, you can simply group the relevant commands and redirect the group.
So the file has to be opened and closed only once and it means a
performance gain.</p>
<h3 id="exceptions">Exceptions:</h3>
<p>This is mainly a stylistic issue, and can freely be ignored.</p>
<p>Note: shell traps which would ordinarily emit output to stdout or
stderr on catching their condition will have output swallowed into the
redirect when the trap is triggered from within the grouping.</p>
<h3 id="related-resources">Related resources:</h3>
<ul>
<li><a href="https://mywiki.wooledge.org/BashFAQ/014">BashFaq: How can I
redirect the output of multiple commands at once?</a></li>
</ul>
    <hr />
    <p style='font-size: 80%'><a href="../index.html">ShellCheck</a> is a static analysis tool for shell scripts. This page is part of its documentation.</p>
  </body>
</html>


